//
// Created by lxx on 23-1-11.
//

#ifndef SOLARENERGY_CHIER_MULTIPANELRECTANGLEGRIDRAYTRACING_CUH
#define SOLARENERGY_CHIER_MULTIPANELRECTANGLEGRIDRAYTRACING_CUH

namespace solar
{
    class CloudLoader;
    namespace cuda
    {
        struct SunrayArgument;
        class CudaMultiPanelReceiver;
        class CudaRectangleGrid;
        struct HeliostatArgument;
    } // namespace cuda
} // namespace solar

namespace solar::cuda
{
    void MultiPanelReceiverRectangleGridRayTracing(SunrayArgument& sunrayArgument,
                                                   CudaMultiPanelReceiver* multiPanelReceiver,
                                                   CudaRectangleGrid* rectGrid,
                                                   HeliostatArgument& heliostatArgument,
                                                   float3* d_subHeliostat_vertexes, float factor,
                                                   bool res, CloudLoader* cloud);
}

#endif // SOLARENERGY_CHIER_MULTIPANELRECTANGLEGRIDRAYTRACING_CUH
